Skip to content

Conversation

@dragonee
Copy link
Owner

Summary

  • Add Discovery event type with ManyToMany relationship to Events
  • Add REST API endpoint at /discoveries/ for managing Discovery items
  • Implement full CRUD operations via DiscoveryViewSet
  • Add event expansion with complete JSON serialization

Changes

Models & Database

  • Add Discovery model extending Event with name, comment, and events fields
  • Create migration 0062_discovery.py for new model

API & Serializers

  • Add BasicDiscoverySerializer for EventSerializer mapping (prevents circular references)
  • Add DiscoverySerializer with expanded event data:
    • events (read-only): Full event JSON via EventSerializer
    • event_ids (write-only): Accept event IDs for creating/updating
  • Add DiscoveryEventsRequestSerializer for filtered event selection

Views & URLs

  • Create DiscoveryViewSet with full CRUD operations
  • Register /discoveries/ API endpoint
  • Add /api/events/discovery/ endpoint for filtered event selection

Admin

  • Add DiscoveryAdmin with event filter_horizontal interface
  • Register Discovery in polymorphic EventAdmin

API Usage

GET /discoveries/{id}/ - Returns Discovery with expanded events:

{
  "id": 1,
  "name": "Important Discovery",
  "comment": "Discovery details",
  "events": [
    {
      "id": 42,
      "comment": "Journal entry",
      "resourcetype": "JournalAdded",
      ...
    }
  ]
}

POST /discoveries/ - Create Discovery:

{
  "name": "New Discovery",
  "comment": "Details",
  "thread": "Daily",
  "event_ids": [42, 87]
}

🤖 Generated with Claude Code

dragonee and others added 4 commits November 15, 2025 16:48
Add Discovery event type and REST API endpoint for managing Discovery items
with full CRUD operations and expanded event data serialization.

Changes:
- Add Discovery model with ManyToMany relationship to Events
- Create database migration for Discovery model
- Add DiscoveryAdmin with event filter_horizontal interface
- Create DiscoveryViewSet with full CRUD operations
- Add BasicDiscoverySerializer to prevent circular references
- Add DiscoverySerializer with nested event expansion
- Register discoveries endpoint at /discoveries/
- Add discovery_events API endpoint for filtered event selection

The DiscoverySerializer returns full event JSON for each associated event,
using write_only event_ids field for input and read_only events field for
output with complete event data via EventSerializer.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants